package com.medical.utils;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONException;

/**
 * @author TISNIW
 * @version 1.0
 * @date 2025/5/2 14:54
 * @desc JSON 工具类，使用 FastJSON2 实现序列化与反序列化
 */
public class JsonUtils {

    /**
     * 将 JSON 字符串反序列化为指定类型
     *
     * @param json  JSON字符串
     * @param clazz 目标类型
     * @param <T>   泛型
     * @return 反序列化后的对象
     */
    public static <T> T parseObject(String json, Class<T> clazz) {
        try {
            return JSON.parseObject(json, clazz);
        } catch (JSONException e) {
            throw new RuntimeException("JSON 反序列化失败", e);
        }
    }

    /**
     * 将 Java 对象序列化为 JSON 字符串
     *
     * @param obj Java 对象
     * @return JSON 字符串
     */
    public static String writeValueAsString(Object obj) {
        try {
            return JSON.toJSONString(obj);
        } catch (JSONException e) {
            throw new RuntimeException("JSON 序列化失败", e);
        }
    }
}